<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content=
    "application/xhtml+xml; charset=iso-8859-1" />
    <title>
      Host System Requirements
    </title>
    <link rel="stylesheet" href="../stylesheets/lfs.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
    "text/css" media="print" />
  </head>
  <body class="lfs" id="lfs-7.3">
    <div class="navheader">
      <h4>
        Linux From Scratch - Version 7.3
      </h4>
      <h3>
        Preface
      </h3>
      <ul>
        <li class="prev">
          <a accesskey="p" href="prerequisites.html" title=
          "Prerequisites">Prev</a>
          <p>
            Prerequisites
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="typography.html" title="Typography">Next</a>
          <p>
            Typography
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="preface.html" title="Preface">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 7.3">Home</a>
        </li>
      </ul>
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <h1 class="sect1">
        <a id="pre-hostreqs" name="pre-hostreqs"></a>vii. Host System
        Requirements
      </h1>
      <p>
        Your host system should have the following software with the minimum
        versions indicated. This should not be an issue for most modern Linux
        distributions. Also note that many distributions will place software
        headers into separate packages, often in the form of
        &ldquo;<span class="quote">&lt;package-name&gt;-devel</span>&rdquo;
        or &ldquo;<span class="quote">&lt;package-name&gt;-dev</span>&rdquo;.
        Be sure to install those if your distribution provides them.
      </p>
      <p>
        Earlier versions of the listed software packages may work, but has
        not been tested.
      </p>
      <div class="itemizedlist">
        <ul class="compact">
          <li>
            <p>
              <span class="strong"><strong>Bash-3.2</strong></span> (/bin/sh
              should be a symbolic or hard link to bash)
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Binutils-2.17</strong></span>
              (Versions greater than 2.23.1 are not recommended as they have
              not been tested)
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Bison-2.3</strong></span>
              (/usr/bin/yacc should be a link to bison or small script that
              executes bison)
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Bzip2-1.0.4</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Coreutils-6.9</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Diffutils-2.8.1</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Findutils-4.2.31</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Gawk-3.1.5</strong></span>
              (/usr/bin/awk should be a link to gawk)
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Gcc-4.1.2</strong></span>
              (Versions greater than 4.7.2 are not recommended as they have
              not been tested)
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Glibc-2.5.1</strong></span>
              (Versions greater than 2.17 are not recommended as they have
              not been tested)
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Grep-2.5.1a</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Gzip-1.3.12</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Linux
              Kernel-2.6.25</strong></span> (having been compiled with
              GCC-4.1.2 or greater)
            </p>
            <p>
              The reason for the kernel version requirement is that we
              specify that version when building <span class=
              "application">glibc</span> in Chapter 6 at the recommendation
              of the developers. It is also required by udev.
            </p>
            <p>
              If the host kernel is either earlier than 2.6.25, or it was not
              compiled using a GCC-4.1.2 (or later) compiler, you will need
              to replace the kernel with one adhering to the specifications.
              There are two ways you can go about this. First, see if your
              Linux vendor provides a 2.6.25 or later kernel package. If so,
              you may wish to install it. If your vendor doesn't offer an
              acceptable kernel package, or you would prefer not to install
              it, you can compile a kernel yourself. Instructions for
              compiling the kernel and configuring the boot loader (assuming
              the host uses GRUB) are located in <a class="xref" href=
              "../chapter08/chapter08.html" title=
              "Chapter&nbsp;8.&nbsp;Making the LFS System Bootable">Chapter
              8</a>.
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>M4-1.4.10</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Make-3.81</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Patch-2.5.4</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Perl-5.8.8</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Sed-4.1.5</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Tar-1.18</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Texinfo-4.9</strong></span>
            </p>
          </li>
          <li>
            <p>
              <span class="strong"><strong>Xz-5.0.0</strong></span>
            </p>
          </li>
        </ul>
      </div>
      <p>
        Note that the symlinks mentioned above are required to build an LFS
        system using the instructions contained within this book. Symlinks
        that point to other software (such as dash, mawk, etc.) may work, but
        are not tested or supported by the LFS development team, and may
        require either deviation from the instructions or additional patches
        to some packages.
      </p>
      <p>
        <a id="version-check" name="version-check"></a>To see whether your
        host system has all the appropriate versions, and the ability to
        compile programs, run the following:
      </p>
      <pre class="userinput">
<kbd class="command">cat &gt; version-check.sh &lt;&lt; "EOF"
<code class="literal">#!/bin/bash
# Simple script to list version numbers of critical development tools

export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
echo "/bin/sh -&gt; `readlink -f /bin/sh`"
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1
if [ -e /usr/bin/yacc ];
  then echo "/usr/bin/yacc -&gt; `readlink -f /usr/bin/yacc`";
  else echo "yacc not found"; fi

bzip2 --version 2&gt;&amp;1 &lt; /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -e /usr/bin/awk ];
  then echo "/usr/bin/awk -&gt; `readlink -f /usr/bin/awk`";
  else echo "awk not found"; fi

gcc --version | head -n1
ldd --version | head -n1 | cut -d" " -f2-  # glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
sed --version | head -n1
tar --version | head -n1
echo "Texinfo: `makeinfo --version | head -n1`"
xz --version | head -n1

echo 'main(){}' &gt; dummy.c &amp;&amp; gcc -o dummy dummy.c
if [ -x dummy ]
  then echo "gcc compilation OK";
  else echo "gcc compilation failed"; fi
rm -f dummy.c dummy</code>
EOF

bash version-check.sh</kbd>
</pre>
    </div>
    <div class="navfooter">
      <ul>
        <li class="prev">
          <a accesskey="p" href="prerequisites.html" title=
          "Prerequisites">Prev</a>
          <p>
            Prerequisites
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="typography.html" title="Typography">Next</a>
          <p>
            Typography
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="preface.html" title="Preface">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 7.3">Home</a>
        </li>
      </ul>
    </div>
  </body>
</html>
